Katara: synthesizing CRDTs with verified lifting
نویسندگان
چکیده
Conflict-free replicated data types (CRDTs) are a promising tool for designing scalable, coordination-free distributed systems. However, constructing correct CRDTs is difficult, posing challenge even seasoned developers. As result, CRDT development still largely the domain of academics, with new designs often awaiting peer review and manual proof correctness. In this paper, we present Katara, program synthesis-based system that takes sequential type implementations automatically synthesizes verified from them. Key to process formal definition correctness combines reference lightweight ordering constraint resolves conflicts between non-commutative operations. Our follows tradition work in lifting, including an encoding into SMT logic using synthesized inductive invariants hand-crafted grammars state runtime. Katara able synthesize wide variety scenarios, reproducing classic synthesizing novel based on specifications existing literature. Crucially, our fully, verified, eliminating entire classes common errors reducing producing painstaking paper specification.
منابع مشابه
Leveraging Parallel Data Processing Frameworks with Verified Lifting
Many parallel data frameworks have been proposed in recent years that let sequential programs access parallel processing. To capitalize on the benefits of such frameworks, existing code must often be rewritten to the domain-specific languages that each framework supports. This rewriting—tedious and error-prone—also requires developers to choose the framework that best optimizes performance give...
متن کاملEventual Consistency for CRDTs
We address the problem of validity in eventually consistent (EC) systems: In what sense does an EC data structure satisfy the sequential specification of that data structure? Because EC is a very weak criterion, our definition does not describe every EC system; however it is expressive enough to describe any Convergent or Commutative Replicated Data Type (CRDT).
متن کاملCRDTs: Consistency without concurrency control
A CRDT is a data type whose operations commute when they are concurrent. Replicas of a CRDT eventually converge without any complex concurrency control. As an existence proof, we exhibit a non-trivial CRDT: a shared edit buffer called Treedoc. We outline the design, implementation and performance of Treedoc. We discuss how the CRDT concept can be generalised, and its limitations. Key-words: Dat...
متن کاملKATARA: Reliable Data Cleaning with Knowledge Bases and Crowdsourcing
Data cleaning with guaranteed reliability is hard to achieve without accessing external sources, since the truth is not necessarily discoverable from the data at hand. Furthermore, even in the presence of external sources, mainly knowledge bases and humans, effectively leveraging them still faces many challenges, such as aligning heterogeneous data sources and decomposing a complex task into si...
متن کاملEfficient State-Based CRDTs by Delta-Mutation
CRDTs are distributed data types that make eventual consistency of a distributed object possible and non ad-hoc. Specifically, state-based CRDTs achieve this by sharing local state changes through shipping the entire state, that is then merged to other replicas with an idempotent, associative, and commutative join operation, ensuring convergence. This imposes a large communication overhead as t...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Proceedings of the ACM on programming languages
سال: 2022
ISSN: ['2475-1421']
DOI: https://doi.org/10.1145/3563336